Field of the Invention
The present invention relates to a technique for controlling a moving object using simultaneous localization and mapping (SLAM).
Description of the Background Art
Using simultaneous localization and mapping (SLAM), a moving object, such as an autonomous robot, estimates its position and simultaneously generates an environmental map while moving autonomously.
A robot (moving object) that moves autonomously with SLAM generates an environmental map around the robot using observation data obtained with a sensor mounted on the robot and using inputs for controlling the robot, while estimating the position and the posture of the robot in the generated environmental map. More specifically, the robot estimates its position and posture Xt (or X1:t={X1, X2, . . . , Xt}) and obtains an environmental map m using a control input sequence U1:t={U1, U2, . . . , Ut} and an observation sequence Z1:t={Z1, Z2, . . . , Zt} in the state space model where the robot follows the system model xt˜g (xt|xt−1, Ut) (Ut is a control input) and the observation follows the observation model Zt˜h (Zt|xt, m) (m is an environmental map).
Techniques have been developed to estimate the posture of a robot with high accuracy using particle filters (e.g., Japanese Unexamined Patent Application Publication No. 2008-126401, or Patent Literature 1).
A sensor used to obtain observation data may typically be an RGB camera incorporating a visible light image sensor, or a range finder that obtains distance information using infrared light or laser light. Two or more different sensors may be used in combination to obtain observation data.
A robot (moving object) that moves autonomously with SLAM typically generates a topological environmental map, instead of generating a geometric environmental map. The environmental map is obtained using, for example, information about landmarks. In this case, the environmental map contains a plurality of sets of landmark information. Each landmark has parameters including variance-covariance matrices expressing (1) information about the position of the landmark and (2) the uncertainty of positional information for the landmark.
When the robot that moves autonomously with SLAM incorporates an RGB camera as its sensor, the robot uses, as landmarks, points or lines with features or objects with distinguishable markers. The robot detects (identifies) an image region corresponding to a landmark in an image captured by the RGB camera to obtain information about the landmark. In this case, the actual position of the robot relative to the actual position of the landmark is determined using the image obtained by the RGB camera, and observation data at the current time is obtained based on the identification result.
When the position of a landmark is obtained from an image captured by the RGB camera as described above, the actual position of the robot and the actual position of the landmark may not be easily estimated with high accuracy. The RGB camera or the range finder has high directivity and thus has a limited observable range. Of many landmarks arranged around the robot, a small number of landmarks can be detected at a time based on data obtained by the RGB camera or the range finder. For example, (1) the distance from the robot to a detected landmark and (2) the angle formed by a predetermined reference axis and a straight line connecting the robot and the detected landmark as viewed from above an environment in which the robot moves are obtained as information about a landmark. In this case, the position of the robot may not be estimated with high accuracy based on the obtained landmark information. This is because all points on the circumference of a circle centered on the position of the detected landmark and having its radius being a distance from the robot to the detected landmark can be candidates for the position of the robot. More specifically, such many candidates for the position of the robot increase the amount of processing to estimate the position of the robot at the current time. In this case, the position of the robot cannot be easily estimated with high accuracy. When the position of the robot cannot be estimated with high accuracy, the error between the actual internal state of the robot and the estimated internal state of the robot increases, and may disable the robot (moving object) from moving autonomously in a stable manner.
In response to the above problems, it is an object of the present invention to provide a moving object controller and a program for controlling a moving object in an appropriate manner by estimating the position of the moving object (robot) accurately based on landmark information and performing a highly accurate state estimation process at high speed in an appropriate manner, and also to provide a landmark used with the controller and the program.